﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Web.Management;

namespace dao.daos
{
    public class TorneoDao : BaseDao
    {
        public TorneoDao() : base("torneo", "id_torneo", true)
        {

        }
        
        public int RegistrarTorneo(int idClub, DateTime fcDesde, DateTime fcHasta)
        {
            int idTorneo;
            SqlConnection con = new SqlConnection();
            con.ConnectionString = StringConexion;
            SqlTransaction trans = null;
            con.Open();
            trans = con.BeginTransaction();
            try
            {
                idTorneo=Insertar(idClub, fcDesde,fcHasta, con, trans);
                trans.Commit();
                return idTorneo;
            }
            catch (Exception e)
            {
                if (trans != null)
                    trans.Rollback();

                throw new SqlExecutionException("Error al inscribir al nadador", e);
            }
            finally
            {
                if (con.State == ConnectionState.Open)
                    con.Close();
            }

        }


        //public void Inscripcion(int idClase, int idNadadores)
        //{
        //    SqlConnection con = new SqlConnection();
        //    con.ConnectionString = StringConexion;
        //    SqlTransaction trans = null;
        //    con.Open();
        //    trans = con.BeginTransaction();
        //    try
        //    {
        //        Insertar(idClase, idNadadores, con, trans);
        //        trans.Commit();
        //    }
        //    catch (Exception e)
        //    {
        //        if (trans != null)
        //            trans.Rollback();

        //        throw new SqlExecutionException("Error al inscribir al nadador", e);
        //    }
        //    finally
        //    {
        //        if (con.State == ConnectionState.Open)
        //            con.Close();
        //    }

        //}



        public void InscripcionNadador(int idClub, DateTime fcDesde, DateTime fcHasta)
        {
            SqlConnection con = new SqlConnection();
            con.ConnectionString = StringConexion;
            SqlTransaction trans = null;
            con.Open();
            trans = con.BeginTransaction();
            try
            {
                Insertar(idClub, fcDesde,fcHasta, con, trans);
                trans.Commit();
            }
            catch (Exception e)
            {
                if (trans != null)
                    trans.Rollback();

                throw new SqlExecutionException("Error al inscribir al nadador", e);
            }
            finally
            {
                if (con.State == ConnectionState.Open)
                    con.Close();
            }

        }


        public int Insertar(int idClub, DateTime fcDesde, DateTime fcHasta, SqlConnection cn, SqlTransaction trans)
        {
            string sql = "Insert into torneo (id_club, fecha_desde, fecha_hasta) values (@IdClub, @fcDesde, @fcHasta); select @@identity;";
            SqlCommand cmd = new SqlCommand(sql, cn, trans);
            cmd.Parameters.Add(new SqlParameter("@IdClub", idClub));
            cmd.Parameters.Add(new SqlParameter("@fcDesde", fcDesde));
            cmd.Parameters.Add(new SqlParameter("@fcHasta", fcHasta));
            return Convert.ToInt32(cmd.ExecuteScalar());

        }

    }
}
